package com.cuit.mimall.controller.api;

import com.cuit.mimall.common.R;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author : TeaWu
 * @folder API/测试
 */
@RestController
@RequestMapping("/api/v1/test")
public class TestController {
    /**
     * 超管测试接口
     * 这是一个只有超级管理员才能访问的接口
     * 有SUPER角色的用户就可以访问
     *
     * @return 测试结果
     */
    @GetMapping("/super")
    @PreAuthorize("hasAnyAuthority('ROLE_SUPER')")
    public R<?> superAdmin() {
        return R.ok("超级管理员访问成功");
    }

    /**
     * 管理员测试接口
     * 这是一个只有管理员及超级管理员才能访问的接口
     * 有ADMIN角色的用户就可以访问
     *
     * @return 测试结果
     */
    @GetMapping("/admin")
    @PreAuthorize("hasAnyAuthority('ROLE_ADMIN')")
    public R<?> admin() {
        return R.ok("管理员访问成功");
    }

    /**
     * 用户测试接口
     * 这是一个所有角色都能访问的接口
     * 有USER角色的用户就可以访问
     *
     * @return 测试结果
     */
    @GetMapping("/user")
    @PreAuthorize("hasAnyAuthority('ROLE_USER')")
    public R<?> user() {
        return R.ok("用户访问成功");
    }
}
